In [23]:
import numpy as np
from scipy.stats import powerlaw
import scipy as sp
import seaborn as sns
sns.set()
%matplotlib inline
edges =[]
for line in open('facebook_combined.txt'):
if line[0] != '#':
# print(line.replace('\n','').split(' ')) # \n es salto de linea, .split(' ') -> separar por espacio, .split('\t') -> si esta separado por tabulación
d = line.replace('\n','').split(' ')
edges.append((d[0],d[1]))
#print(edges)
import networkx as nx
G = nx.Graph() # G = nx.Graph(edges), otro modo de crear el grafo
G.add_edges_from(edges)
degrees = [degree for _, degree in G.degree().items()]
# print(degrees)
sns.distplot(degrees)
Out[23]:
In [28]:
e, l, s = sp.stats.powerlaw.fit(degrees)
e, l, s
ax = sns.distplot(sp.stats.powerlaw.rvs(e, l, s, size=100000))
In [29]:
import matplotlib.pyplot as plt
log = np.log(degrees)
plt.hist(log, log=True)
Out[29]:
Defina un número de papers N. Los papers van a ser publicados en orden (primero 1, después 2, etc.) Defina el promedio de citaciones de cada paper (e.g. 3 citaciones). Cree un grupo inicial de papers. Cada nuevo paper tendrá c citaciones. Esas citaciones van a ser a papers ya existentes y proporcional al número de papers que citan a cada paper. Se crearon Hubs? Cuál es la distribución de grados de la red?
In [ ]:
a,b,l,s = sp.stats.fit(r)
(a,b,l,s)
Cuando un gen se duplica y evoluciona, el nuevo gen mantiene interacción a las mismas proteínas con las que trabaja el gen inicial y a algunas nuevas. El gen original pierde algunas de sus interacciones. Genere una red aleatoria y después cree N genes que sigan este esquema.
In [ ]:
In [ ]:
In [ ]: